Keyboard entry system

ABSTRACT

A keyboard entry system is disclosed which comprises a keyboard which includes a plurality of letter keys, one for each letter of a selected language. The entry system responds to conventional sequential activation of individual keys by providing output signals indicative of the respective individual letters associated with the activated keys to an application program such as a word processor or printer control program. The keyboard entry system also responds to chords of simultaneously activated multiple keys by using these chords to retrieve stored words from a dictionary. It is the stored words rather than the entered chords which are applied as inputs to the application program. This system allows an operator to use both conventional sequential key entry techniques and chorded entry techniques for rapid data entry.

BACKGROUND OF THE INVENTION

The present invention relates to keyboard entry systems and inparticular to an improved keyboard entry system which provides increasedspeed of data entry.

A wide variety of keyboard entry systems have been proposed in the past.Conventional QWERTY typewriter keyboards allow single finger activationof individual keys for single letter entry. Typically, keys aresequentially activated and words are entered letter by letter.

A variant of this conventional keyboard system is one which provides acontrol key which can be used to indicate that subsequently entered keysare to be treated in special way. For example, sequential depression ofa control key and then a number of letter keys may be used to indicatethat the letter keys entered subsequently to the control key are to beinterpreted as a code indicative of a stored word or phrase.

Other prior art keyboard entry systems have utilized specializedkeyboards which react to the simultaneous depression of several keysdifferently than to the sequential activation of keys. See, for example,Endfield U.S. Pat. No. 4,360,892, Prame U.S. Pat. Nos. 4,344,069 and4,381,502 and James U.S. Pat. No. 3,381,276. For example, the Pramepatents disclose a keyboard entry system in which a twelve-key pad isused. Activation of a single key results in entry of a number, whereassimultaneous activation of multiple keys results in entry of a letter.

Yet another prior art approach is that described in Binenbaum U.S. Pat.No. 3,597,538 and Budworth U.S. Pat. No. 3,892,915. Both of thesesystems relate to devices for use with data generated by a stenographickeyboard.

Ayres U.S. Pat. No. 3,225,883 discloses an entry system in whichmultiple keys are simultaneously depressed in order to enter multiplecharacters constituting a syllable or word. In the Ayres system, certainletters are entered by simultaneous depression of adjacent keys by asingle finger of the user.

Bequaert U.S. Pat. No. 4,042,777 discloses a variant on the specializedkeyboard approach. The Bequaret patent disclses a one hand keyboardwhich relies on simultaneous depression of one or more keys to indicateindividual letters. In addition, Bequaert teaches that stored words maybe retrieved by means of coded chords which do not correspond to anyindividual letter. Thus, when a coded chord is entered, the systemdisclosed by Bequaert retrieves the stored word associated with thespecific chord and enters the stored word rather than the chord itself.The Bequaret system requires the simultaneous depression of two or fourkeys in order to entry a number of separate letters. Thus, each chordedentry must be checked to determine whether it is a letter chordindicative of a discrete letter or a coded chord indicative of a storedword. In certain applications, this need to check each chorded entry canslow the operation of the entry system to an undesirable degree.Furthermore, the Bequaert system requires an operator to learn a newentry format which differs fundamentally from that of the standardQWERTY keyboard in common use.

SUMMARY OF THE INVENTION

The present invention is directed to an improved keyboard entry system,which does not require extensive operator retraining, and which canimprove the speed and accuracy of keyboard data entry.

According to this invention, a keyboard entry system for a languagecomprised of a plurality of letters is provided which includes akeyboard. This keyboard comprises a plurality of letter keys, eachassociated with a respective letter. First means are provided forgenerating keying signals in response to activation of the letter keys.Second means are provided for generating output signals in response tothe keying signals. This second means includes means for storing a listof stored texts, each of which is associated with a respective storedindex. Means, responsive to single finger activation of the letter keys,operate to set the output signal to the letters corresponding to theactivated ones of the letter keys. In addition, means, responsive tonear simultaneous, multiple finger activation of the letter keys,operate to classify the corresponding keying signals as a key chord.Means are provided for comparing the key chords with the stored indexesand for selecting the corresponding ones of the stored texts in theevent the key chord matches one of the stored indexes, along with meansfor setting the output signal to correspond with the selected storedtext. The keyboard and first and second means cooperate automatically toset the output signal to correspond to associated ones of the letters inresponse to single finger activation of the letter keys, and to set theoutput signal to correspond to an associated one of the stored texts inresponse to multiple finger activation of the letter keys.

This invention provides the important advantage that the keyboard can beused for conventional single letter entry without retraining theoperator. Thus, the keyboard is fully usable in its conventional,sequential letter entry mode by an operator of conventional skills. Tothe extent the operator is trained and interested in using the advancedentry features of this invention, the operator can simply enter chordswhich are decoded as one of a number of stored words, phrases, or thelike. As the skills of the operator increase, and the operator learns agreater and greater number of chords, the operator can obtain greaterand greater benefit from this invention. These important advantages areachieved without interrupting or disturbing in any way sequential dataentry. For this reason, an operator can use the data entry system ofthis invention in the convention manner without any additionalinstruction whatsoever and the operator can gradually make use of theadvanced features of this invention in a progressive manner as theoperator's data entry skills increase.

The invention itself, together with further objects and attendantadvantages, will best be understood by reference to the followingdetailed description, taken in conjunction with the accompanyingdrawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram showing a presently preferred embodiment ofthis invention.

FIG. 2 is a more detailed schematic representation of the embodiment ofFIG. 1.

FIG. 3 is a flowchart of the chord recognition system of FIG. 2.

FIG. 4 is a schematic diagram showing a second preferred embodiment ofthis invention.

DETAILED DESCRIPTION OF THE PRESENTLY PREFERRED EMBODIMENTS

Turning now to the drawings, FIG. 1 shows a schematic representation ofa keyboard entry system 10 which incorporates a presently preferredembodiment of this invention. The keyboard entry system 10 includes akeyboard 20, a computer 30 and an output device such a printer or CRTdisplay 100.

FIG. 2 shows a more detailed block diagram of the system 10 of FIG. 1.As shown in FIG. 2, the keyboard 20 is coupled to a clock 22, and thekeyboard 20 operates to generate keying signals which are applied to thecomputer 30 via a cable 24. Mechanically, the keyboard 20 is aconventional QWERTY keyboard such as that distributed by AmkeyCorporation as part No. DIN-106 which includes a separate letter key foreach of the 26 letters of the Roman alphabet. However, the keyboard 20differs from the conventional Amkey keyboard described above, in thatthe read only memory included in the keyboard 20 has been reprogrammedwith the programmed shown in Appendix A. The standard Amkey DIN-106generates a eight-bit keystroke scan code in response to each depressionor release of a key included on the keyboard. One bit of this eight-bitkeystroke scan code designates whether the key stroke corresponds to thedepression or release of a key, and the other seven bits operate toidentify the key.

The revised software included in Appendix A causes the keyboard 20 todiffer from the standard Amkey DIN-106 keyboard, in that the keyboard 20generates a keying signal in response to the activation of each key inthe following format: fddddddd tttttttt tttttttt, where f indicates thekey depress/release flag, d indicates a key code bit and t indicates atime code bit. The first eight bits of this 24-bit keying signalcorrespond to the conventional eight-bit keystroke scan code describedabove. That is, the most significant bit indicates whether the activatedkey has been depressed or released, and the remaining seven bitsconstitute a key code which identifies the key activated. The remaining16 bits of the keying signal on cable 24 constitute a time code. In thisembodiment, the clock 22 generates a clock pulse every sevenmilliseconds, and the 16-bit time code included in the keying signal onthe cable 24 is simply a binary count of clock pulses generated by theclock 22. Thus, the 16-bit time code is a measure of the relative timeof depression or release of the associated key, measured with aresolution of seven milliseconds.

In this preferred embodiment, the computer 30 is an IBM PC computerhaving 256 K of random access of memory and supplied with the PCDOS 2.0disk operating system and the standard MSPASCAL complier. Both PCDOS 2.0and MSPASCAL are conventional programs known to those skilled in the artwhich will not be described in detail here. The standard PCDOS 2.0includes a module called BIOS which performs initial processing ofkeyboard entries.

In the embodiment of FIGS. 1 and 2, the conventional BIOS routine isreplaced by a modified routine termed QBIOS, shown at reference number40 in FIG. 2. QBIOS operates in much the same manner as the conventionalBIOS routine in decoding the key code included in the first eight bitsof the keying signal on cable 24 to obtain the ASCII code correspondingto the activated key on the keyboard 20. However, in addition the QBIOSroutine stores the 16-bit time code included in the keying signal inassociation with the decoded key code. Appendix B provides a listing ofQBIOS as implemented in this embodiment.

In this embodiment QBIOS is stored in RAM and the pointer in theInterrupt Vector Table is modified such that keyboard generatedinterrupts are directed to QBIOS in RAM instead of to BIOS in ROM.

The output of the QBIOS routine is an ASCII code indicative of the keyactivated, an indication of the whether the activated key has beenreleased or depressed, and the time code indicative of the relative timeof activation. This information is supplied to a chord recognitionsystem 50. The chord recognition system 50 is discussed below in greaterdetail in conjunction with FIG. 3. Here is enough to state that thechord recognition system 50 classifies each of the activated letter keyseither (1) as a discrete key which has been activated in sequence withother keys, or (2) as part of a key chord. As used herein the term "keychord" is used to designate a plurality of letter keys which areactivated nearly simultaneously or in an overlapping manner. Forexample, the chord recognition system 50 distinguishes between theletters Q and X when activated sequentially and the letters QX whenactivated as a chord.

Those keys recognized by the chord recognition system 50 as singlecharacter entries are passed as output signals via data path 52 to anapplication program 90. The application program 90 can be a suitableprogram such as a printer or display control program or a word processorprogram for example.

Key chords recognized by the chord recognition system 50 are passed to adictionary lookup system 70 via path 50. The dictionary lookup system 70serves to store a list of stored texts. As used herein, the term "storedtext" is used in its broad sense to encompass stored words, syllables,acronyms, phrases, sentences, and the like. Each of the stored textsincluded in the dictionary lookup system 70 is associated with arespective stored index. Table 1 shows an illustrative listing of aportion of the stored words and stored indexes which may be included inthe dictionary lookup system 70.

                  TABLE 1    ______________________________________    Index            Stored Text    ______________________________________    qx               Quixote Corporation    hr               however    fe               furthermore    ns               nevertheless    us               United States    asc              acetylsalicylic acid    ______________________________________

The dictionary look-up system 70 includes a dictionary update routine 72which allows a user to add new stored texts and stored indexes to thedictionary lookup system 70. A dictionary display routine 74 allows thecontents of the dictionary lookup system 70 to be displayed on a CRT. Adictionary list routine 76 allows the stored texts and indexes in thedictionary lookup system 70 to be printed.

The dictionary lookup system 70 and the routines 72,74,76 are standardsystems well known to those skilled in the art. A variety of approachescan be used to implement the dictionary lookup system 70, but in thispreferred embodiment a table lookup type dictionary is used. That is,each stored index is associated with a pointer which points to thebeginning of the corresponding stored text. Each stored text is ofvariable length and extends to an end of text symbol such as a byteequal to zero. The output of the dictionary lookup system 70 is the oneof the stored texts associated with the stored index that corresponds tothe key chord supplied by the chord recongition system. This stored textoutput is supplied as an output signal via path 78 to the applicationprogram 90.

The embodiment of FIG. 2 operates to transmit discrete letters directlyto the application program 90 and to use near simultaneous characterentries as chords to retrieve associated ones of the stored texts fromthe dictionary lookup system 70, which are also supplied as inputs tothe application program 90. If the application program 90 is, forexample, a simple printer control program, then the application program90 controls the printer 100 to cause both single character entriessupplied via path 52 and stored text entries supplied via path 78 to beprinted in sequence on the printer 100. Similary, if the applicationprogram 90 is a word processing program, it operates to enter bothsingle character entries and stored text entries into the document beingcreated. The application program 90 does not per se form any part ofthis invention, and those skilled in the art will be aware of a widevariety of programs suitable for use with this invention. For thisreason, the application program 90 will not be described in furtherdetail here.

FIG. 3 shows a more detailed flowchart of the chord recognition systemfirst checks to see if a next key is available from QBIOS, as indicatedby key release. If not, the action taken depends on the elapsed timesince the previous key. If this elapsed time is less than t2, no actionis taken. If this elapsed time is greater than t2, then the keys storedin the key stack are sent as a chord to the dictionary lookup system 70and the key stack is cleared. if a next key is available from QBIOS, thesystem 70 then checks to determine whether the time code of the next keyis more than t1 greater than the time code of the previous key. If not,the next key is put on top of the key stack; if so, the keys stored inthe key stack are sent as a chord to the dictionary lookup system 70 andthe key stack is cleared.

The sensitivity adjustment system 56 of FIG. 2 allows adjustment of t1and t2 such that chords are recognized and reliably distinguished fromstandard sequential key entry. Preferably, this adjustment in t1 and t2is made by the operator. For example, up and down keys may be providedto allow an operator to increase or decrease the value of t1 and t2 asdesired. For many applications a value of t1 and t2 of less than 50milliseconds will be appropriate. It is anticipated that a value of t1in the range of 15-30 milliseconds may be suitable for some typists.

Of course, it should be understood that the arrangement of componentsshown in FIG. 1 is merely one of several alternative embodiments of thisinvention. In the system of FIG. 1, the clock 22 can either be includedin the keyboard 20 as shown in FIG. 2 or it can alternatley be includedin the computer 30. In a second preferred embodiment of this invention,as shown in FIG. 4, the entire chord recognition and decoding system 110is included in a separate module which is interposed between thekeyboard 20 and computer 30. This approach may be preferable inapplications where preexisting keyboards and computers are to be updatedand provided with the enhanced chorded entry features of this invention.In the embodiment of FIG. 4, the clock (not shown) used to measure therelative times of key activation can be included either in the keyboard20 or in the chord recognition and decoding system 110. In principle,the embodiment of FIG. 4 operates identically to that of FIG. 1. Theonly difference is in the hardware, and particularly in the module 110which includes the chord recognition system 50 and the dictionary lookupsystem 70, along with associated routines 56,72,74,76 of FIG. 2.

From the foregoing, it should be apparent that an improved keyboardentry system has been described which provides particularly high datainput rates. The system of this invention avoids the need for a separatecontrol key to flag the entry of an abbreviation. Because theembodiments described above recognize a single key entry as indicativeof a conventional single character and multiple chorded key entry asindicative of a code to be compared against stored indexes in thedictionary lookup system, these embodiments operate in a particularlyfast and simple manner. An important feature of these embodiments isthat because all chorded character entries but no single characterentries are compared with stored indexes in the dictionary, the need tocheck every keyboard entry against the dictionary is avoided. Thisspeeds the execution of these embodiments.

Another important advantage of this invention is that the entry ofchorded keys is a fast, efficient way to allow an operator to enter anindex code into the system. As explained above, the preferredembodiments described above can readily be used by an untrainedoperator, because the keyboard operates in the conventional singlecharacter entry mode without changes of any sort. To the extent theoperator is capable of and interested in using the advanced chordedentry features of these embodiments, the operator can do so in anatural, progressive, and unstructed manner. Thus, the same keyboardentry system can be used by a range of operators with varying skills.Minimally skilled operators may use only the conventional singlecharacter entry features of the keyboard entry system, whereas moreskilled operators can take full advantage of both the single characterand the chorded character entry modes of the invention. Furthermore, anoperator can readily customize the dictionary lookup system to includenew stored texts and associated stored indexes, depending upon theindividual preferences of the operator or the needs of an individualproject.

Of course, it should be understood that a wide range of changes andmodifications can be made to the preferred embodiments described above.For example, the preferred embodiments described above recognize achorded character entry by analyzing the times of release of individualkeys. In alternative embodiments, it may be, preferable to use the timesof key depression either as a substitute for or in conjunction with thetime of key to determine chorded character entries. In thisspecification and the following claims, the term "key activation" hasbeen used in its broad sense to encompass either key depression or keyrelease, or both.

Furthermore, the term "single finger activation" is used herein todenote patterns of one or more key activations achieved by use of asingle finger by the operator. Thus, in some embodiments of thisinvention, single finger activation techniques may be used to activatetwo adjacent keys.

It is intended that the foregoing detailed description be regarded asillustrative rather than limiting, and that it be understood that it isthe following claims, including all equivalents, which are intended todefine the scope of this invention.

APPENDIX A ##SPC1## ##SPC2## APPENDIX B ##SPC3## ##SPC4## ##SPC5##

We claim:
 1. A keyboard entry system for a selected language, saidsystem comprising:a keyboard comprising a plurality of keys, saidplurality of keys comprising a set of letter keys comprising arespective key for each letter of said selected language; first means,responsive to the plurality of letter keys, for generating keyingsignals in response to activation of the letter keys, each keying singalcharacterized by a respective activation time; second means, responsiveto the first means, for generating output signals in response to thekeying signals, said second means comprising:means for classifying aplurality of keying signals as a key chord in the event the respectiveactivation times satisfy predetermined criteria, said classifying meanscomprising; means for setting a time threshold value prior to initiationof a typing session in said selected language; means for comparing anelapsed time separating the activation times of a pair of the keyingsignals included in the plurality of keying signals with said timethreshold value; and means for designating said plurality of keyingsignals as a key chord in the event a selected one of the elapsed timeand the time threshold value is greater than the other; means forstoring a list of stored texts, each corresponding to a respectivechord; means, responsive to the key chord for utilizing the keyingsignals associated with the key chord to select the one of the storedtexts in the list of stored texts which correspond to the key chord;means for setting the output signal to correspond to the selected one ofthe stored text andmeans for setting the output signal to correspond tothe letters corresponding to the activated letter keys in the event therespective activation times fail to satisfy said criteria.
 2. Theinvention of claim 1 wherein the selected language is written in theRoman alphabet and said set of letter keys comprises a respective letterkey for each letter of the Roman alphabet.
 3. The invention of claim 1wherein the keyboard comprises a QWERTY keyboard which comprises theplurality of letter keys.
 4. The invention of claim 1 wherein the meansfor generating the keying signals generates a keying signal in responseto release of a depressed one of the letter keys.
 5. A keyboard entrysystem for a selected language which comprises a multiplicity of wordsformed of the 26 letters of the Roman alphabet, said system operative tosupply a plurality of output signals to a utilization device andcomprising:a keyboard comprising a plurality of keys, said plurality ofkeys comprising at least 26 letter keys, each corresponding to anassociated one of the 26 letters of the Roman alphabet, said letter keysarranged in a QWERTY keyboard configuration; means, responsive to theletter keys, for generating key signals in response to activation of theletter keys, each of said key signals comprising a key code identifyingthe activated key and a time code identifyign the time of activation;means, responsive to the key signals, for classifying a plurality of keycodes activated during during a typing session as a key chord in theevent the time codes of the corresponding plurality of key signalssatisfy predetermined criteria and for classifying the plurality of keycodes as a plurality of discrete letters in the event the time codes ofthe corresponding plurality of key signals fail to satisfy thepredetermined criteria, said predetermined criteria comprising thecomponent criterion that a selected one of (1) the elapsed timeseparating the time codes of a pair of the key signals incuded in theplurality of key signals, and (2) a time threshold value set prior toinitiation of the typing session must be greater than the other; meansfor supplying the plurality of discrete letters as a plurality of theoutput signals; means for maintaining a list of stored texts, each ofwhich is identified with a respective stored index; means, responsive tothe key chord, for comparing the key chord with the stored indexes andfor selecting the corresponding one of the stored tests in the event thekey chord matches one of the stored indexes; and means for supplying theselected stored text as one of the output signals, said systemcooperating to allow conventional sequential key entry to bve intermixediwth chorded key entry.
 6. The invention of claim 5 wherein the timecode has a time increment no less than 10 milliseconds.
 7. The inventionof claim 5 wherein the means for generating the key signals is includedin the keyboard.
 8. The invention of claim 5 wherein the classifyingmeans is included in a computer, and wherein the means for generatingthe key signals is included in a module interconnected between thekeyboard and the computer.
 9. A keyboard entry system for a languagecomprised of a plurality of letters, said system comprising:a keyboardcomprising a plurality fo letter keys, each associated with a respectiveletter; first means, responsive to the letter keys, for generatingkeying signals in response to activation of the letter keys; secondmeans, responsive to the first means, for generating output signals inresponse to the keying signals, said second means comprising:means forstoring a list of stored texts, each of which is associated with arespective stored index; means for setting a time threshold value priorto initiation of a typing session in said language; means for measuringa plurality of time intervals, each characteristic of the elapsed timeseparating a consecutive pair of keying signals; third means forclassifying a set of keying signals as a nonchord in the event the oneof (1) the respective time intervalls and (2) the time threshold valueis greater than the other, and for setting the output signal tocorrespond to respective ones of the letters corresponding to theacitvated ones of the letter keys; fourth means for classifying the setof keying signals as a key chord in the event that the other of (1) therespective time intervals and (2) the time threshold value is greterthan the other; means, responsive to the key chord, for comparing thekey chord iwth the stored indexes and for selecting the correspondingone of the stored texts in the event the key chord matches one of thestored indexes; and means for setting the output signal to correspondwith the selected stored text; said keyboard and first and second meanscooperating automatically to set the output signal to correspond toassociated one of the letters in response to nonchorded activation ofthe letter keys, and to set the output signal to correspond to anassociated one of the stored texts in response to chorded activation ofthe letter keys.
 10. The invention of claim 9 wherein the plurality ofletter keys comprises a respective letter key for each of the 26 lettersof the Roman Alphabet.
 11. The invention of claim 9 wherein the keyboardcomprises a QWERTY keyboard which includes the plurality of letter keys.12. The invention of claim 9 wherein the means for generating the keyingsignals generates a keying signal in response to release of a depressedone of the letter keys.
 13. The invention of claim 1 further comprisingmeans, controllable by a user, for adjusting the time threshold valueprior to initiation of the typing session in said selected language. 14.The invention of claim 1 wherein the time threshold value remainsunchanged during the typing session in said selected language.
 15. Theinvention of claim 1 wherein the activation times of the pair of thekeying signals are indicative of respective key depression tiems, andwherein the designating means designates the plurality of keying signalsas a key chord in the event the time threshold value is greater than theelapsed time.
 16. The invention of claim 5 further comprising means,controllable by a user, for adjusting the time threshold value prior otinitiation of the typing session.
 17. The invention of claim 5 whereinthe time threshold value remains unchanged during the typing session.18. The invention of claim 5 wherein the time codes of the pair of keysignals identify the respective times of key depression, and wherein thecomponetn criterion requires that the time threshold value must begreater than the elapsed time to classify the plurality of key codes asa key chord.
 19. The invention of claim 9 wherein the setting meanscomprises means, controllable by a user, for adjusting the timethreshold value prior to initiation of the typing session in saidlanguage.
 20. The invention of claim 9 wherein the time threshold valueremains unchanged during the typing session in said language.
 21. Theinvention of claim 18 wherein the time threshold value is a variable,the value of which is user selectable.
 22. The invention of claim 9wherein the first means generates the keying signals in response to keydepression and wherein the fourth means classifies the set of keyingsignals as a key chord in the event the time threshold value is greaterthan the respective time intervals.